package br.uniceub.fsw.academicmobile.vo;

import br.uniceub.fsw.academicmobile.dao.HistoricoDAO;
import br.uniceub.fsw.academicmobile.dao.MencaoDAO;
import java.util.Date;

/**
 * tabela tb_mencao
 * @author Christian Moryah
 */
public class MencaoVO {

    /**
     * Coluna ID_mencao
     */
    private Integer idMencao;
    
    /**
     * Coluna tb_historico_ID_historico
     */
    private Integer tbHistoricoIdHistorico;
    
    /**
     * Coluna tb_tipoMencao_ID_tipoMencao
     */
    private Integer tbTipoMencaoIdTipoMencao;
    
    /**
     * Coluna tb_SGMencao_ID_tipoMencao
     */
    private Integer tbSgMencaoIdTipoMencao;
    
    /**
     * Coluna DT_mencao
     */
    private Date dtMencao;
    
    /**
     * Coluna DS_mencao
     */
    private String dsMencao;
    
    /**
     * Historico relacionado pela coluna tb_historico_ID_historico
     */
    private HistoricoVO historico;
    
    /**
     * Tipo de mencao relacionada pela coluna tb_tipoMencao_ID_tipoMencao
     */
    private TipoMencaoVO tipoMencao;
    
    /**
     * Sigla de mencao relacionada pela coluna tb_SGMencao_ID_tipoMencao
     */
    private SgMencaoVO sgMencao;

    public String getDsMencao() {
        return dsMencao;
    }

    public void setDsMencao(String dsMencao) {
        this.dsMencao = dsMencao;
    }

    public Date getDtMencao() {
        return dtMencao;
    }

    public void setDtMencao(Date dtMencao) {
        this.dtMencao = dtMencao;
    }

    /**
     * Metodo que traz o objeto historico referenciado pela classe do banco,
     * ha a necessidade do objeto Mencao possuir o id do historico.
     * @return HistoricoVO objeto aula referenciado pela mencao.
     */
    public HistoricoVO getHistorico() {
        if(historico==null){
            historico = new HistoricoVO();
            historico.setIdHistorico(tbHistoricoIdHistorico);
            historico = new HistoricoDAO().consultarHistoricoPorId(historico);
        }
        return historico;
    }

    public void setHistorico(HistoricoVO historico) {
        this.historico = historico;
    }

    public Integer getIdMencao() {
        return idMencao;
    }

    public void setIdMencao(Integer idMencao) {
        this.idMencao = idMencao;
    }

    /**
     * Metodo que traz o objeto Sigla Mencao referenciado pela classe do banco,
     * ha a necessidade do objeto Mencao possuir o id da Sigla Mencao.
     * @return SgMencaoVO objeto Sigla Mencao referenciado pela mencao.
     */
    public SgMencaoVO getSgMencao() {
        if(sgMencao == null){
            sgMencao = new SgMencaoVO();
            sgMencao.setIdSgMencao(tbSgMencaoIdTipoMencao);
            sgMencao = new MencaoDAO().consultarSgMencaoPorId(sgMencao);
        }
        return sgMencao;
    }

    public void setSgMencao(SgMencaoVO sgMencao) {
        this.sgMencao = sgMencao;
    }

    public Integer getTbHistoricoIdHistorico() {
        return tbHistoricoIdHistorico;
    }

    public void setTbHistoricoIdHistorico(Integer tbHistoricoIdHistorico) {
        this.tbHistoricoIdHistorico = tbHistoricoIdHistorico;
    }

    public Integer getTbSgMencaoIdTipoMencao() {
        return tbSgMencaoIdTipoMencao;
    }

    public void setTbSgMencaoIdTipoMencao(Integer tbSgMencaoIdTipoMencao) {
        this.tbSgMencaoIdTipoMencao = tbSgMencaoIdTipoMencao;
    }

    public Integer getTbTipoMencaoIdTipoMencao() {
        return tbTipoMencaoIdTipoMencao;
    }

    public void setTbTipoMencaoIdTipoMencao(Integer tbTipoMencaoIdTipoMencao) {
        this.tbTipoMencaoIdTipoMencao = tbTipoMencaoIdTipoMencao;
    }

    /**
     * Metodo que traz o objeto Tipo Mencao referenciado pela classe do banco,
     * ha a necessidade do objeto Mencao possuir o id do Tipo Mencao.
     * @return TipoMencaoVO objeto Tipo Mencao referenciado pela mencao.
     */
    public TipoMencaoVO getTipoMencao() {
        if(tipoMencao==null){
            tipoMencao = new TipoMencaoVO();
            tipoMencao.setIdTipoMencao(tbTipoMencaoIdTipoMencao);
            tipoMencao = new MencaoDAO().consultarTipoMencaoPorId(tipoMencao);
        }
        return tipoMencao;
    }

    public void setTipoMencao(TipoMencaoVO tipoMencao) {
        this.tipoMencao = tipoMencao;
    }
    
    
}
